home *** CD-ROM | disk | FTP | other *** search
/ MacWorld Secrets (4th Edition) / Mac Secrets CD 4th Ed.toast / Apple Advanced Technologies / Apple Speech Technologies 1.5 / PlainTalk Developer Info / Speech Synthesis Manager SDK / Interfaces / Universal Interfaces / Speech.h
Text File  |  1994-05-05  |  17KB  |  620 lines

  1. /*
  2.     File:        Speech.h
  3.  
  4.     Copyright:    © 1984-1994 by Apple Computer, Inc., all rights reserved.
  5.  
  6. */
  7.  
  8. #ifndef _SPEECH_
  9.     #define _SPEECH_
  10.  
  11. #ifndef __TYPES__
  12.     #include <Types.h>
  13. #endif
  14.  
  15. #ifndef __MEMORY__
  16.     #include <Memory.h>
  17. #endif
  18.  
  19. #ifndef __FILES__
  20.     #include <Files.h>
  21. #endif
  22.  
  23. #define kTextToSpeechSynthType             'ttsc'
  24. #define kTextToSpeechVoiceType             'ttvd'
  25. #define kTextToSpeechVoiceFileType        'ttvf'
  26. #define kTextToSpeechVoiceBundleType    'ttvb'
  27.  
  28.  
  29.  
  30. enum  
  31.     {
  32.     gestaltSpeechHasPPCGlue        = 1            /* Bit position. If set, this Speech Mgr     */
  33.     };                                        /* version has native PPC glue for API         */
  34.  
  35.  
  36. enum  
  37.     {
  38.     kNoEndingProsody            = 1,
  39.     kNoSpeechInterrupt            = 2,
  40.     kPreflightThenPause            = 4
  41.     };
  42.  
  43. enum  
  44.     {
  45.     kImmediate                    = 0,
  46.     kEndOfWord                    = 1,
  47.     kEndOfSentence                = 2
  48.     };
  49.  
  50.  
  51. /*------------------------------------------*/
  52. /* GetSpeechInfo & SetSpeechInfo selectors    */
  53. /*------------------------------------------*/
  54. #define soStatus                'stat'        
  55. #define soErrors                'erro'
  56. #define soInputMode                'inpt'
  57. #define soCharacterMode            'char'
  58. #define soNumberMode            'nmbr'
  59. #define soRate                    'rate'
  60. #define soPitchBase                'pbas'
  61. #define soPitchMod                'pmod'
  62. #define soVolume                'volm'
  63. #define soSynthType                'vers'
  64. #define soRecentSync            'sync'
  65. #define soPhonemeSymbols        'phsy'
  66. #define soCurrentVoice            'cvox'
  67. #define soCommandDelimiter        'dlim'
  68. #define soReset                    'rset'
  69. #define soCurrentA5                'myA5'
  70. #define soRefCon                'refc'
  71. #define soTextDoneCallBack        'tdcb'
  72. #define soSpeechDoneCallBack    'sdcb'
  73. #define soSyncCallBack            'sycb'
  74. #define soErrorCallBack            'ercb'
  75. #define soPhonemeCallBack        'phcb'
  76. #define soWordCallBack            'wdcb'
  77. #define soSynthExtension        'xtnd'
  78. #define soSoundOutput            'sndo'
  79.  
  80.  
  81.  
  82. /*------------------------------------------*/
  83. /* Speaking Mode Constants                     */
  84. /*------------------------------------------*/
  85.  
  86. #define modeText        'TEXT'        /* input mode constants                     */
  87. #define modePhonemes    'PHON'
  88. #define modeNormal        'NORM'        /* character mode and number mode constants */
  89. #define modeLiteral        'LTRL'
  90.  
  91.  
  92.  
  93. enum  
  94.     {
  95.     soVoiceDescription            = 'info',
  96.     soVoiceFile                    = 'fref'
  97.     };
  98.  
  99.  
  100. #if defined(powerc) || defined (__powerc)
  101. #pragma options align=mac68k
  102. #endif
  103. struct SpeechChannelRecord 
  104. {
  105.     long            data[1];
  106. };
  107. #if defined(powerc) || defined(__powerc)
  108. #pragma options align=reset
  109. #endif
  110.  
  111. typedef struct SpeechChannelRecord SpeechChannelRecord;
  112. typedef SpeechChannelRecord *SpeechChannel;
  113.  
  114.  
  115.  
  116. #if defined(powerc) || defined (__powerc)
  117. #pragma options align=mac68k
  118. #endif
  119. struct VoiceSpec 
  120.     {
  121.     OSType            creator;
  122.     OSType            id;
  123.     };
  124. #if defined(powerc) || defined(__powerc)
  125. #pragma options align=reset
  126. #endif
  127.  
  128. typedef struct VoiceSpec VoiceSpec;
  129.  
  130.  
  131.  
  132.  
  133. enum  
  134.     {
  135.     kNeuter = 0,
  136.     kMale,
  137.     kFemale
  138.     };
  139.  
  140.  
  141.  
  142.  
  143. #if defined(powerc) || defined (__powerc)
  144. #pragma options align=mac68k
  145. #endif
  146. struct VoiceDescription 
  147. {
  148.     long                        length;
  149.     VoiceSpec                    voice;
  150.     long                        version;
  151.     Str63                        name;
  152.     Str255                        comment;
  153.     short                        gender;
  154.     short                        age;
  155.     short                        script;
  156.     short                        language;
  157.     short                        region;
  158.     long                        reserved[4];
  159. };
  160. #if defined(powerc) || defined(__powerc)
  161. #pragma options align=reset
  162. #endif
  163.  
  164. typedef struct VoiceDescription VoiceDescription;
  165.  
  166.  
  167.  
  168.  
  169. #if defined(powerc) || defined (__powerc)
  170. #pragma options align=mac68k
  171. #endif
  172. struct VoiceFileInfo 
  173. {
  174.     FSSpec                        fileSpec;
  175.     short                        resID;
  176. };
  177. #if defined(powerc) || defined(__powerc)
  178. #pragma options align=reset
  179. #endif
  180.  
  181. typedef struct VoiceFileInfo VoiceFileInfo;
  182.  
  183.  
  184.  
  185.  
  186. #if defined(powerc) || defined (__powerc)
  187. #pragma options align=mac68k
  188. #endif
  189. struct SpeechStatusInfo 
  190. {
  191.     Boolean                        outputBusy;
  192.     Boolean                        outputPaused;
  193.     long                        inputBytesLeft;
  194.     short                        phonemeCode;
  195. };
  196. #if defined(powerc) || defined(__powerc)
  197. #pragma options align=reset
  198. #endif
  199.  
  200. typedef struct SpeechStatusInfo SpeechStatusInfo;
  201.  
  202.  
  203.  
  204.  
  205. #if defined(powerc) || defined (__powerc)
  206. #pragma options align=mac68k
  207. #endif
  208. struct SpeechErrorInfo 
  209. {
  210.     short                        count;
  211.     OSErr                        oldest;
  212.     long                        oldPos;
  213.     OSErr                        newest;
  214.     long                        newPos;
  215. };
  216. #if defined(powerc) || defined(__powerc)
  217. #pragma options align=reset
  218. #endif
  219.  
  220. typedef struct SpeechErrorInfo SpeechErrorInfo;
  221.  
  222.  
  223.  
  224.  
  225. #if defined(powerc) || defined (__powerc)
  226. #pragma options align=mac68k
  227. #endif
  228. struct SpeechVersionInfo 
  229. {
  230.     OSType                        synthType;
  231.     OSType                        synthSubType;
  232.     OSType                        synthManufacturer;
  233.     long                        synthFlags;
  234.     NumVersion                    synthVersion;
  235. };
  236. #if defined(powerc) || defined(__powerc)
  237. #pragma options align=reset
  238. #endif
  239.  
  240. typedef struct SpeechVersionInfo SpeechVersionInfo;
  241.  
  242.  
  243.  
  244.  
  245. #if defined(powerc) || defined (__powerc)
  246. #pragma options align=mac68k
  247. #endif
  248. struct PhonemeInfo 
  249. {
  250.     short                        opcode;
  251.     Str15                        phStr;
  252.     Str31                        exampleStr;
  253.     short                        hiliteStart;
  254.     short                        hiliteEnd;
  255. };
  256. #if defined(powerc) || defined(__powerc)
  257. #pragma options align=reset
  258. #endif
  259.  
  260. typedef struct PhonemeInfo PhonemeInfo;
  261.  
  262.  
  263.  
  264.  
  265.  
  266. #if defined(powerc) || defined (__powerc)
  267. #pragma options align=mac68k
  268. #endif
  269. struct PhonemeDescriptor 
  270. {
  271.     short                        phonemeCount;
  272.     PhonemeInfo                    thePhonemes[1];
  273. };
  274. #if defined(powerc) || defined(__powerc)
  275. #pragma options align=reset
  276. #endif
  277.  
  278. typedef struct PhonemeDescriptor PhonemeDescriptor;
  279.  
  280.  
  281.  
  282.  
  283. #if defined(powerc) || defined (__powerc)
  284. #pragma options align=mac68k
  285. #endif
  286. struct SpeechXtndData 
  287. {
  288.     OSType                        synthCreator;
  289.     Byte                        synthData[2];
  290. };
  291. #if defined(powerc) || defined(__powerc)
  292. #pragma options align=reset
  293. #endif
  294.  
  295. typedef struct SpeechXtndData SpeechXtndData;
  296.  
  297.  
  298.  
  299.  
  300. #if defined(powerc) || defined (__powerc)
  301. #pragma options align=mac68k
  302. #endif
  303. struct DelimiterInfo 
  304. {
  305.     Byte                        startDelimiter[2];
  306.     Byte                        endDelimiter[2];
  307. };
  308. #if defined(powerc) || defined(__powerc)
  309. #pragma options align=reset
  310. #endif
  311.  
  312. typedef struct DelimiterInfo DelimiterInfo;
  313.  
  314.  
  315.  
  316.  
  317. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  318. /* Text-done callback routine typedef     */
  319. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  320. typedef pascal void (*SpeechTextDoneProcPtr)(SpeechChannel, long, Ptr *, long *, long *);
  321.  
  322. #if USESROUTINEDESCRIPTORS
  323.     /*------------------*/
  324.     /* PPC version         */
  325.     /*------------------*/
  326.     enum 
  327.         {
  328.         uppSpeechTextDoneProcInfo = kPascalStackBased
  329.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  330.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  331.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Ptr*)))
  332.              | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long*)))
  333.              | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long*)))
  334.         };
  335.     typedef UniversalProcPtr SpeechTextDoneUPP;
  336.     #define CallSpeechTextDoneProc(userRoutine, parameter0, parameter1, parameter2, parameter3, parameter4)        \
  337.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechTextDoneProcInfo, (parameter0), (parameter1), (parameter2), (parameter3), (parameter4))
  338.     #define NewSpeechTextDoneProc(userRoutine)        \
  339.             (SpeechTextDoneUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechTextDoneProcInfo, GetCurrentISA())
  340. #else
  341.     /*------------------*/
  342.     /* 68K version         */
  343.     /*------------------*/
  344.     typedef SpeechTextDoneProcPtr SpeechTextDoneUPP;
  345.     
  346.     #define CallSpeechTextDoneProc(userRoutine, parameter0, parameter1, parameter2, parameter3, parameter4)        \
  347.             (*(userRoutine))((parameter0), (parameter1), (parameter2), (parameter3), (parameter4))
  348.     #define NewSpeechTextDoneProc(userRoutine)        \
  349.             (SpeechTextDoneUPP)(userRoutine)
  350. #endif
  351.  
  352.  
  353.  
  354.  
  355.  
  356. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  357. /* Speech-done callback routine typedef */
  358. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  359. typedef pascal void (*SpeechDoneProcPtr)(SpeechChannel, long);
  360.  
  361. #if USESROUTINEDESCRIPTORS
  362.     /*------------------*/
  363.     /* PPC version         */
  364.     /*------------------*/
  365.     enum 
  366.         {
  367.         uppSpeechDoneProcInfo = kPascalStackBased
  368.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  369.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  370.         };
  371.     typedef UniversalProcPtr SpeechDoneUPP;
  372.     #define CallSpeechDoneProc(userRoutine, parameter0, parameter1)        \
  373.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechDoneProcInfo, (parameter0), (parameter1))
  374.     #define NewSpeechDoneProc(userRoutine)        \
  375.             (SpeechDoneUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechDoneProcInfo, GetCurrentISA())
  376. #else
  377.     /*------------------*/
  378.     /* 68K version         */
  379.     /*------------------*/
  380.     typedef SpeechDoneProcPtr SpeechDoneUPP;
  381.     #define CallSpeechDoneProc(userRoutine, parameter0, parameter1)        \
  382.             (*(userRoutine))((parameter0), (parameter1))
  383.     #define NewSpeechDoneProc(userRoutine)        \
  384.             (SpeechDoneUPP)(userRoutine)
  385. #endif
  386.  
  387.  
  388.  
  389.  
  390. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  391. /* Sync callback routine typedef         */
  392. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  393. typedef pascal void (*SpeechSyncProcPtr)(SpeechChannel, long, OSType);
  394.  
  395. #if USESROUTINEDESCRIPTORS
  396.     /*------------------*/
  397.     /* PPC version         */
  398.     /*------------------*/
  399.     enum 
  400.         {
  401.         uppSpeechSyncProcInfo = kPascalStackBased
  402.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  403.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  404.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(OSType)))
  405.         };
  406.     typedef UniversalProcPtr SpeechSyncUPP;
  407.     #define CallSpeechSyncProc(userRoutine, parameter0, parameter1, parameter2)        \
  408.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechSyncProcInfo, (parameter0), (parameter1), (parameter2))
  409.     #define NewSpeechSyncProc(userRoutine)        \
  410.             (SpeechSyncUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechSyncProcInfo, GetCurrentISA())
  411. #else
  412.     /*------------------*/
  413.     /* 68K version         */
  414.     /*------------------*/
  415.     typedef SpeechSyncProcPtr SpeechSyncUPP;
  416.     #define CallSpeechSyncProc(userRoutine, parameter0, parameter1, parameter2)        \
  417.             (*(userRoutine))((parameter0), (parameter1), (parameter2))
  418.     #define NewSpeechSyncProc(userRoutine)        \
  419.             (SpeechSyncUPP)(userRoutine)
  420. #endif
  421.  
  422.  
  423.  
  424.  
  425.  
  426. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  427. /* Error callback routine typedef         */
  428. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  429. typedef pascal void (*SpeechErrorProcPtr)(SpeechChannel, long, OSErr, long);
  430.  
  431. #if USESROUTINEDESCRIPTORS
  432.     /*------------------*/
  433.     /* PPC version         */
  434.     /*------------------*/
  435.     enum 
  436.         {
  437.         uppSpeechErrorProcInfo = kPascalStackBased
  438.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  439.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  440.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(OSErr)))
  441.              | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  442.         };
  443.     typedef UniversalProcPtr SpeechErrorUPP;
  444.     #define CallSpeechErrorProc(userRoutine, parameter0, parameter1, parameter2, parameter3)        \
  445.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechErrorProcInfo, (parameter0), (parameter1), (parameter2), (parameter3))
  446.     #define NewSpeechErrorProc(userRoutine)        \
  447.             (SpeechErrorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechErrorProcInfo, GetCurrentISA())
  448. #else
  449.     /*------------------*/
  450.     /* 68K version         */
  451.     /*------------------*/
  452.     typedef SpeechErrorProcPtr SpeechErrorUPP;
  453.     #define CallSpeechErrorProc(userRoutine, parameter0, parameter1, parameter2, parameter3)        \
  454.             (*(userRoutine))((parameter0), (parameter1), (parameter2), (parameter3))
  455.     #define NewSpeechErrorProc(userRoutine)        \
  456.             (SpeechErrorUPP)(userRoutine)
  457. #endif
  458.  
  459.  
  460.  
  461.  
  462.  
  463. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  464. /* Phoneme callback routine typedef     */
  465. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  466. typedef pascal void (*SpeechPhonemeProcPtr)(SpeechChannel, long, short);
  467.  
  468. #if USESROUTINEDESCRIPTORS
  469.     /*------------------*/
  470.     /* PPC version         */
  471.     /*------------------*/
  472.     enum 
  473.         {
  474.         uppSpeechPhonemeProcInfo = kPascalStackBased
  475.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  476.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  477.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  478.         };
  479.     typedef UniversalProcPtr SpeechPhonemeUPP;
  480.     #define CallSpeechPhonemeProc(userRoutine, parameter0, parameter1, parameter2)        \
  481.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechPhonemeProcInfo, (parameter0), (parameter1), (parameter2))
  482.     #define NewSpeechPhonemeProc(userRoutine)        \
  483.             (SpeechPhonemeUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechPhonemeProcInfo, GetCurrentISA())
  484. #else
  485.     /*------------------*/
  486.     /* 68K version         */
  487.     /*------------------*/
  488.     typedef SpeechPhonemeProcPtr SpeechPhonemeUPP;
  489.     #define CallSpeechPhonemeProc(userRoutine, parameter0, parameter1, parameter2)        \
  490.             (*(userRoutine))((parameter0), (parameter1), (parameter2))
  491.     #define NewSpeechPhonemeProc(userRoutine)        \
  492.             (SpeechPhonemeUPP)(userRoutine)
  493. #endif
  494.  
  495.  
  496.  
  497.  
  498.  
  499. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  500. /* Word callback routine typedef         */
  501. /*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-*/
  502. typedef pascal void (*SpeechWordProcPtr)(SpeechChannel, long, long, short);
  503.  
  504. #if USESROUTINEDESCRIPTORS
  505.     /*------------------*/
  506.     /* PPC version         */
  507.     /*------------------*/
  508.     enum 
  509.         {
  510.         uppSpeechWordProcInfo = kPascalStackBased
  511.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SpeechChannel)))
  512.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  513.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  514.              | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
  515.         };
  516.     typedef UniversalProcPtr SpeechWordUPP;
  517.     #define CallSpeechWordProc(userRoutine, parameter0, parameter1, parameter2, parameter3)        \
  518.             CallUniversalProc((UniversalProcPtr)(userRoutine), uppSpeechWordProcInfo, (parameter0), (parameter1), (parameter2), (parameter3))
  519.     #define NewSpeechWordProc(userRoutine)        \
  520.             (SpeechWordUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechWordProcInfo, GetCurrentISA())
  521. #else
  522.     /*------------------*/
  523.     /* 68K version         */
  524.     /*------------------*/
  525.     typedef SpeechWordProcPtr SpeechWordUPP;
  526.     #define CallSpeechWordProc(userRoutine, parameter0, parameter1, parameter2, parameter3)        \
  527.             (*(userRoutine))((parameter0), (parameter1), (parameter2), (parameter3))
  528.     #define NewSpeechWordProc(userRoutine)        \
  529.             (SpeechWordUPP)(userRoutine)
  530. #endif
  531.  
  532.  
  533.  
  534.  
  535. #ifdef __cplusplus
  536. extern "C" {
  537. #endif
  538.  
  539. extern pascal NumVersion SpeechManagerVersion(void)
  540.  FOURWORDINLINE(0x203C, 0x0000, 0x000C, 0xA800);
  541.  
  542. extern pascal OSErr MakeVoiceSpec(OSType creator, OSType id, VoiceSpec *voice)
  543.  FOURWORDINLINE(0x203C, 0x0604, 0x000C, 0xA800);
  544.  
  545. extern pascal OSErr CountVoices(short *numVoices)
  546.  FOURWORDINLINE(0x203C, 0x0108, 0x000C, 0xA800);
  547.  
  548. extern pascal OSErr GetIndVoice(short index, VoiceSpec *voice)
  549.  FOURWORDINLINE(0x203C, 0x030C, 0x000C, 0xA800);
  550.  
  551. extern pascal OSErr GetVoiceDescription(VoiceSpec *voice, VoiceDescription *info, long infoLength)
  552.  FOURWORDINLINE(0x203C, 0x0610, 0x000C, 0xA800);
  553.  
  554. extern pascal OSErr GetVoiceInfo(VoiceSpec *voice, OSType selector, void *voiceInfo)
  555.  FOURWORDINLINE(0x203C, 0x0614, 0x000C, 0xA800);
  556.  
  557. extern pascal OSErr NewSpeechChannel(VoiceSpec *voice, SpeechChannel *chan)
  558.  FOURWORDINLINE(0x203C, 0x0418, 0x000C, 0xA800);
  559.  
  560. extern pascal OSErr DisposeSpeechChannel(SpeechChannel chan)
  561.  FOURWORDINLINE(0x203C, 0x021C, 0x000C, 0xA800);
  562.  
  563. extern pascal OSErr SpeakString(StringPtr s)
  564.  FOURWORDINLINE(0x203C, 0x0220, 0x000C, 0xA800);
  565.  
  566. extern pascal OSErr SpeakText(SpeechChannel chan, Ptr textBuf, long textBytes)
  567.  FOURWORDINLINE(0x203C, 0x0624, 0x000C, 0xA800);
  568.  
  569. extern pascal OSErr SpeakBuffer(SpeechChannel chan, Ptr textBuf, long textBytes, long controlFlags)
  570.  FOURWORDINLINE(0x203C, 0x0828, 0x000C, 0xA800);
  571.  
  572. extern pascal OSErr StopSpeech(SpeechChannel chan)
  573.  FOURWORDINLINE(0x203C, 0x022C, 0x000C, 0xA800);
  574.  
  575. extern pascal OSErr StopSpeechAt(SpeechChannel chan, long whereToStop)
  576.  FOURWORDINLINE(0x203C, 0x0430, 0x000C, 0xA800);
  577.  
  578. extern pascal OSErr PauseSpeechAt(SpeechChannel chan, long whereToPause)
  579.  FOURWORDINLINE(0x203C, 0x0434, 0x000C, 0xA800);
  580.  
  581. extern pascal OSErr ContinueSpeech(SpeechChannel chan)
  582.  FOURWORDINLINE(0x203C, 0x0238, 0x000C, 0xA800);
  583.  
  584. extern pascal short SpeechBusy(void)
  585.  FOURWORDINLINE(0x203C, 0x003C, 0x000C, 0xA800);
  586.  
  587. extern pascal short SpeechBusySystemWide(void)
  588.  FOURWORDINLINE(0x203C, 0x0040, 0x000C, 0xA800);
  589.  
  590. extern pascal OSErr SetSpeechRate(SpeechChannel chan, Fixed rate)
  591.  FOURWORDINLINE(0x203C, 0x0444, 0x000C, 0xA800);
  592.  
  593. extern pascal OSErr GetSpeechRate(SpeechChannel chan, Fixed *rate)
  594.  FOURWORDINLINE(0x203C, 0x0448, 0x000C, 0xA800);
  595.  
  596. extern pascal OSErr SetSpeechPitch(SpeechChannel chan, Fixed pitch)
  597.  FOURWORDINLINE(0x203C, 0x044C, 0x000C, 0xA800);
  598.  
  599. extern pascal OSErr GetSpeechPitch(SpeechChannel chan, Fixed *pitch)
  600.  FOURWORDINLINE(0x203C, 0x0450, 0x000C, 0xA800);
  601.  
  602. extern pascal OSErr SetSpeechInfo(SpeechChannel chan, OSType selector, void *speechInfo)
  603.  FOURWORDINLINE(0x203C, 0x0654, 0x000C, 0xA800);
  604.  
  605. extern pascal OSErr GetSpeechInfo(SpeechChannel chan, OSType selector, void *speechInfo)
  606.  FOURWORDINLINE(0x203C, 0x0658, 0x000C, 0xA800);
  607.  
  608. extern pascal OSErr TextToPhonemes(SpeechChannel chan, Ptr textBuf, long textBytes, Handle phonemeBuf, long *phonemeBytes)
  609.  FOURWORDINLINE(0x203C, 0x0A5C, 0x000C, 0xA800);
  610.  
  611. extern pascal OSErr UseDictionary(SpeechChannel chan, Handle dictionary)
  612.  FOURWORDINLINE(0x203C, 0x0460, 0x000C, 0xA800);
  613.  
  614. #ifdef __cplusplus
  615. }
  616. #endif
  617.  
  618. #endif
  619.  
  620.